package com.fish.common.constant;

/**
 * JWT常量
 */
public class JwtConstant {
    
    /**
     * JWT密钥（生产环境请使用配置文件或环境变量）
     */
    public static final String SECRET_KEY = "fish-secret-key-2024-please-change-in-production";
    
    /**
     * Token前缀
     */
    public static final String TOKEN_PREFIX = "Bearer ";
    
    /**
     * Token请求头名称
     */
    public static final String TOKEN_HEADER = "Authorization";
    
    /**
     * Access Token过期时间（30天，单位：毫秒）
     */
    public static final Long ACCESS_TOKEN_EXPIRATION = 30 * 24 * 60 * 60 * 1000L;
    
    /**
     * Refresh Token过期时间（90天，单位：毫秒）
     */
    public static final Long REFRESH_TOKEN_EXPIRATION = 90 * 24 * 60 * 60 * 1000L;
    
    /**
     * Token中的用户ID声明
     */
    public static final String CLAIM_USER_ID = "userId";
    
    /**
     * Token中的用户名声明
     */
    public static final String CLAIM_USERNAME = "username";
    
    /**
     * Token类型声明
     */
    public static final String CLAIM_TOKEN_TYPE = "tokenType";
    
    /**
     * Access Token类型
     */
    public static final String TOKEN_TYPE_ACCESS = "access";
    
    /**
     * Refresh Token类型
     */
    public static final String TOKEN_TYPE_REFRESH = "refresh";
}